// 文章管理页面posts.html js文件

// 查询文章列表参数
// 分类
let category = '';
// 状态
let state = '';

// 初始化页面数据
getData(1);

// 渲染分类数据
$.ajax({
    type: 'get',
    url: '/categories',
    success: res => {
        //渲染分类数据
        let html = template('tpl-category', { data: res });
        $('#category').html(html);
    },
    error: err => console.log('获取分类数据失败')
});

// 状态筛选框改变事件
$('#state').on('change', function () {
    // 获取选中的状态值
    let selectState = $(this).val();
    // 草稿或者已发布状态
    if (selectState  != -1) state = selectState;
    // 所有状态
    else state = '';
});

// 分类复选框改变事件
$('#category').on('change', function () {
    // 获取选中的分类id
    let selectCategory = $(this).val();
    // 其它分类
    if (selectCategory != -1) category = selectCategory;
    // 所有分类
    else category = '';
});

// 筛选表单提交事件
$('#filterForm').on('submit', function () {
    getData(1);
    // 阻止表单提交
    return false;
});

// 文章删除按钮点击事件
$('#articleBox').on('click', '.delete', function () {
    // 获取删除文章的id
    let id = $(this).attr('data-id');
    // 获取当前页码
    let page = $(this).attr('data-page');
    if (confirm('您确定要删除这篇文章吗？')) {
        $.ajax({
            type: 'delete',
            url: `/posts/${id}`,
            success: res => getData(page),
            error: err => alert('删除文章失败！')
        });
    }
});

/**
 * 渲染文章列表，分页
 * @param { 页码 } page 
 */
function getData(page) {
    // 参数拼接
    let params = {};
    if (category) params['category'] = category;
    if(state) params['state'] = state;
    params.page = page;
    // 数据查询
    $.ajax({
        type: 'get',
        url: '/posts',
        data: params,
        success: res => {
            // 先模板中导入时间格式处理函数
            template.defaults.imports.dateFormat = dateFormat;
            // 渲染文章列表
            let html = template('tpl-articles', { data: res });
            $('#articleBox').html(html);
            // 渲染分页
            let pageHtml = template('tpl-page', { data: res });
            $('#pageBox').html(pageHtml);
        },
        error: err => console.log('获取文章列表数据失败！')
    });
}